// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); “온라인 카지노 play enjoy bonus with 1Win 카지노 보너스 코드” – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

“온라인 카지노 play enjoy bonus with 1Win 카지노 보너스 코드”

1Win 카지노에서 🎉 놓치 missed 없이 즐기는 방법

1Win 카지노에서 🎉 놓치 missed 없이 즐기는 방법은 다음과 같습니다. 첫째, 사이트를 탐색하여 제공하는 다양한 게임을 살펴보세요. 둘째, 가입 후 로그인하여 보유한 머니를 이용하거나 캐시 충전을 통해 게임에 참여할 수 있습니다. 셋째, 획득한 포인트를 이용하여 추가 이점을 얻을 수 있는 프로모션을 살펴보세요. 넷째, 다른 사용자들과 경쟁할 수 있는 토너먼트에 참여하여 보상을 얻으십시오. 다섯째, 친구를 초대하고 함께 놀 수 있는 추천 인센티브를 활용하세요. 마지막으로, 충실한 회원으로 등록되어 정기적인 bonus와 프로모션을 이용할 수 있도록 하세요.

온라인 카지노 게임, 1Win 카지노 코드로 🎉 특별 보너스

kowiki 온라인 카지노 게임에서는 exciting한 게임 option들을 많이 제공합니다. 1Win 카지노 코드로, 🎉 특별 보너스를 얻을 수 있습니다. Korean players can now enjoy a wide variety of casino games on 1Win, with the added benefit of special bonuses using the 1Win 카지노 코드. Korean players, register now and take advantage of this special offer. Korean-language support and secure payment options are also available on 1Win. Join the fun and excitement of online casino gaming on 1Win today!

“온라인 카지노 play enjoy bonus with 1Win 카지노 보너스 코드”

ko 카지노 사이트 추천, 1Win 카지노 보너스 코드 적용

kowebsite.com에서 KO 카지노 사이트 추천을 확인하실 수 있습니다. 최신 정보와 함께 안전하고 신뢰할 수 있는 온라인 카지노 사이트를 추천해드립니다.

1Win 카지노에서도 혜택을 볼 수 있는 1Win 카지노 보너스 코드 적용을 살펴보세요. 가입 bonus, 충전 bonus, 캐시백 등 다양한 bonus 프로모션을 제공합니다.

KO 카지노와 1Win 카지노는 Korean players 에게 최적의 카지노 서비스를 제공합니다. 놓치지 마세요!

1Win 카지노 🎉 Join & Double your fun with bonus code

1Win 카지노에서 더블 즐거움을 느껴보세요! 🎉 가입 bonus code를 활용해 elcometion bonus, free spins 등 다양한 혜택을 genießen können Sie. 국orea에서 온 모든 손님들은, 특별히 당사의 놀이ground에 입장하셔서 émotion-packed gaming experience를 즐길 수 있 to the fullest.
1Win Casino는 안전하고 신뢰할 수 있는 온라인 카지노 플랫폼으로, 다양한 게임을 선보이고 있습니다. 여기에서는 블랙잭, 바카라, 슬롯 머신 등 모든 게임에서 당신의 기쁨을 두배로 만들 수 있습니다.
bonus code를 활용하여 가입하시면, 추가적인 혜택도 함께 받게 됩니다. 당사의 믿을 수 있는 보안 시스템과 24시간 7일 클라이언트 서비스를 경험해 보세요.
1Win Casino에서는 언제나 최고의 서비스와 혜택을 제공하며, 당신의 즐거움을 우선시합니다. 지금 가입하고, 1Win 카지노에서 더블 즐거움을 느껴보세요! 🎉

온라인 카지노 play & Enjoy 1Win 카지노 🎉 exclusive bonus

안녕하세요, 온라인 카지노 게임을 좋아하는 친절한 블로거입니다.
최근 많은 사람들이 높은 보너스와 함께 즐길 수 있는 🔴 1Win 카지노를 선택합니다.
Country Korea 국민들도 이 astic 기회를 놓치지 마세요!
🎉 1Win 카지노에서는 🎉 eregistration가 완료되면 바로 특별한 unwind bonus를 받으실 수 있습니다.
Korean players also can enjoy various casino games with high quality graphics and sound.
Join 1Win 카지노 now and take advantage of this exclusive offer!

안녕하세요, 오늘은 1Win 카지노에 방문하여 즐거운 시간을 보냈던 김 철수 씨의 경험담을 소개하고자 합니다.

김 철수 씨는 최근 1win Korea 온라인 카지노 게임에 많이 관심이 생겨서 인터넷에서 다양한 카지노 사이트를 찾아보았는데, 1Win 카지노에 먼저 가입을 해보기로 했습니다.

가입 절차는 매우 간단하고 친절한 안내 메시지가 계속 떠서 금방 완료할 수 있었습니다.

가입을 완료하고 나서는 바로 게임을 즐길 수 있었는데, 다양한 게임을 선택할 수 있었고 그 중에서도 블랙잭을 선택해 몇 판 즐겁게 플레이를 했습니다.

게임을 즐기면서도 1Win 카지노의 보너스 코드를 사용해 추가 혜택을 받을 수 있었는데, 이것이 김 철수 씨의 입맛을 더욱 MAGEUN 하게 만들었던 것 같습니다.

이후 몇 시간 동안 계속 게임을 즐기며 축적된 포인트를 사용해 다양한 게임을 시도해 보았고, 매우 즐거운 시간을 보냈던 것 같습니다.

김 철수 씨는 “1Win 카지노에서는 다양한 게임을 즐길 수 있고, 보너스 코드를 사용해 추가 혜택을 받을 수 있어 매우 즐거운 시간을 보낼 수 있었습니다. 추천하고 싶은 사이트입니다!” 라고 말씀해 주셨습니다.

저희도 김 철수 씨의 경험담에 공감하며, 1Win 카지노에 방문해 보시는 것을 추천해 드립니다.

ONLINE 카지노 놀이하며 1Win 카지노 보너스 코드로 bonus genießen

Q. 온라인 카지노에서 즐길 수 있는 Bishopbonus는 무엇입니까?

A. 1Win 카지노에서 제공하는 보너스 코드를 사용하면 추가 Bishopbonus를 받을 수 있습니다.

Q. 1Win 카지노 보너스 코드는 어디서 얻을 수 있습니까?

A. 프로모션을 통해 or 카지노 사이트에서 직접 얻을 수 있습니다.

Q. 1Win 카지노 보너스 코드를 사용하면 어떤 장점이 있습니까?

A. 추가 Bishopbonus를 받고, 더 긴 게임 시간, 더 많은 기회를 얻을 수 있습니다.

Design and Develop by Ovatheme